package jsu.blogger.mapper;

import jsu.blogger.pojo.Draft;
import org.apache.ibatis.annotations.*;

import java.util.List;

@Mapper
public interface DraftMapper {
    @Insert("INSERT INTO drafts (draft_id, user_id, post_id, title, content,cover_option, article_type, original_url,description) " +
            "VALUES (#{draftId}, #{userId}, #{postId}, #{title}, #{content},#{coverOption}, #{articleType}, #{originalUrl},#{description})")
    void insertDraft(Draft draft);
    // 根据 draft_id 查询是否存在
    Draft findAllById(@Param("draftId") String draftId);

    // 根据 userId 和 draftId 删除草稿
    @Delete("DELETE FROM drafts WHERE user_id = #{userId} AND draft_id = #{draftId}")
    int deleteDraftByUserIdAndDraftId(@Param("userId") Long userId, @Param("draftId") String draftId);

    // 分页查询草稿
    List<Draft> selectDraftsByUserId(@Param("userId") Long userId,
                                     @Param("limit") long limit,
                                     @Param("offset") long offset);
    Draft findById(@Param("draftId") String draftId);
    // 根据 draftId 查询草稿的标题和内容
    Draft getDraftTitleAndContentById(@Param("draftId") String draftId);

    // 根据 draftId 查询草稿的其他信息（包括标签）
    Draft getDraftOtherDetailsById(@Param("draftId")String draftId);

    // 根据 draftId, userId, postId 查询草稿是否存在
    boolean checkDraftExists(@Param("draftId") String draftId, @Param("userId") Long userId,@Param("postId")  Long postId);

    // 根据 draftId 更新草稿
    void updateDraftById(Draft draft);

    @Delete("DELETE FROM drafts WHERE draft_id = #{draftId}")
    int deleteDraftById(@Param("draftId") String draftId);
}
